The present invention relates to providing high service availability in networks. More particularly, the present invention relates to using both an active controller and standby controller to ensure continuous communication across a network in the event of network controller failure.
Asynchronous transfer mode (xe2x80x9cATMxe2x80x9d) networks use a cell-based switching and multiplexing technology to provide a general-purpose connection-oriented transfer mode for a wide range of services. These services include the simultaneous transfer of voice, video, and data between end-users connected to an ATM network. Examples of end-users include, but are not limited to, work stations, network nodes, and routers. Typically, each end-user relies on an ATM user-network interface (xe2x80x9cUNIxe2x80x9d) and an edge switch to communicate across the ATM network. The edge switches allow the end-user to transmit across the multiple nodes of an ATM network by creating a virtual connection from one end-user to another end-user. Alternatively, edge switches are also used to create virtual connections from one end-user to multiple end-users.
The complexity of ATM networks led to the development of a Private Network-Node Interface (xe2x80x9cPNNIxe2x80x9d) protocol. The PNNI protocol provides a signaling and routing protocol that relies on a hierarchical addressing scheme to summarize routing information. In particular, the routing protocol uses both a topology scheme and end-user hierarchical scheme to identify the address of all nodes and end-users in an ATM network. Accordingly, through the exchange of topology information over PNNI links, every node in the ATM network receives a hierarchically summarized version of the entire network. Given that a source node has a summarized view of the entire network, the source node uses the PNNI signaling protocol to set up an ATM connection along the path determined by the routing protocol.
FIG. 1 illustrates a prior art ATM network using a PNNI scheme. In particular, network 100 comprises a group of nodes (120-130) connected by links (141-146). As illustrated in FIG. 1, the combination of nodes and links form PNNI 110. Network 100 also includes end-users (115-118). PNNI 110 allows each end-user to transfer data, in the form of cells, to another end-user or a group of end-users. For example, a data transfer from end-user 115 to end-user 117 is performed along link 141. Alternatively, the same data transfer is performed via link 142, node 130, and line 143. As previously described, in a PNNI protocol the source node has a summarized view of the entire network. Accordingly, following the previous example, node 120 is aware of the different routing paths between end-user 115 and end-user 117. Thus, based on the network congestion found in PNNI 110, node 120 selects one of the paths between end-user 115 and end-user 117 and establishes a switched virtual connection (xe2x80x9cSVCxe2x80x9d).
To establish the SVC, node 120 moves through three different phases. In the initial phasexe2x80x94also referred to as the call establishment phasexe2x80x94node 120 initiates a set up call using the address of the destination device. The setup call is routed through the intermediate nodes of PNNI 110 until the destination device is reached. The destination device responds with a call connect message that is transmitted back to node 120. When the call connect reaches node 120, node 120 transfers to a call active phase. In the call active phase, data is transmitted between end-user 115 of node 120 and the destination device. Subsequently, node 120 moves to the third phasexe2x80x94the release phasexe2x80x94and the call between node 120 and the destination device is terminated.
FIG. 2 shows a prior art switching circuit used in a node of an ATM network. In particular, network switch 200 has two planes of operation, a user plane and a control plane. The user plane deals with the actual user traffic managed by switch 210, call database 209, interfaces 220(a)-220(n), and interfaces 221(a)-221(n). In particular, switch 210 uses call data base 209 to maintain different virtual paths and virtual channel connections between interfaces 220(a)-220(n) and interfaces 221(a)-221(n). The control plane is set up by controller 215 and is responsible for setting up a connection between controller 215 and a remote controller via interface 221 or interface 220. For example, if network switch 200 is used in node 120 of network 100, One of the interfaces 220(a)-(n) is coupled to end-user 115. Additionally, a subset of interfaces 221(a)-(n) are coupled to links 141 and 142 and interface 221 is coupled to both links 141 and 142. Thus, the control plane of controller 215 is coupled to a controller in node 126 and a controller in node 130 via interface 221.
One of the functions maintained by the control plane is to ensure a continuous communications link between adjacent nodes in a network. Typically, the continuity of the communication link is maintained by a keep alive protocol in which each controller periodically checks the operation of controllers in adjacent nodes. Specifically, a controller will periodically transmit a query signal to the controller of an adjacent node or adjacent nodes. Each controller in an adjacent node responds to the query signal with a reply signal indicating that the controller is operating normally. In the event that the controller in the adjacent node does not respond to the query signal, the controller originating the query signal tears down (terminates) all active calls with the non responding adjacent node.
As illustrated in FIG. 2, network switch 200 includes a controller 215 coupled to switch 210 via line 225. Controller 215 generally controls the switching characteristics of switch 200 using line 225. In particular, controller 215 controls switch 200 using a call database (216) comprising switch control code, a connection routing protocol (217), and call control logic 218. The call database 216 contains information regarding each of the links connected to network switch 200 via interfaces 220(a)-220(n) and interfaces 221(a)-221(n). The call database 216 resides on controller 215. The call control logic 218 establishes and releases switched virtual connections under the control of the controller 215.
Controller 215 and switch 210 operate as a single network node. Controller 215 receives and processes connection routing protocol messages and determines which local resources of switch 210 are affected by the protocol messages. Switch 210, in turn, adds and deletes cross-connects as determined by controller 215 and logs the new switch connections in switch cross-connect database 209.
In this prior art switch and controller arrangement, a single controller supporting a network software layer is allowed to control the resources of the switch. Numerous disadvantages result from this configuration. One disadvantage results from a controller failure. In particular, a controller failure results in a failure of a node which in turn leads to the interruption of data transfers. Another disadvantage results from call tear-downs. Specifically, a controller failure results in an active call being dropped. The dropped call creates an interruption of service to the end user. Thus, resulting in service unavailability and a subsequent re-establishment of the call using alternate nodes.
A method for sharing a call record between a first controller and a second controller is disclosed. The method comprises the step of generating the call record in the first controller. For one embodiment, the call record comprises call parameters operable to establish a call connection between the first controller and a remote controller. The method also comprises the step of transferring the call record to the second controller. For one embodiment, the second controller performs as a stand-by controller. Thus, in the event of a failure by the first controller, the second controller maintains an active call connection between a node including the first controller and the second controller and a remote node including the remote controller.
For an alternative embodiment, the second controller uses the transferred call record to resynchronize communication with nodes adjacent to the node including the first controller and the second controller. For yet another embodiment, the second controller uses the transferred call record to resynchronize communication between the second controller and a switch.